#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
#include<vector>

using namespace std;

//int num[1010];
//int sta[1010];
//
//void dfs(int n, vector<int> v)
//{
//    if (n == v.size())
//    {
//        int sum = 0;
//        for (int i = 0; i < v.size(); i++)
//        {
//            if (sta[i]) sum += v[i];
//        }
//        num[sum] = 1;
//        return;
//    }
//    sta[n] = 0;
//    dfs(n + 1, v);
//    sta[n] = 1;
//    dfs(n + 1, v);
//}
//int getFirstUnFormedNum(vector<int> arr, int len) {
//    dfs(0, arr);
//    int nmin = 1e8 + 7;
//    for (auto it : arr)
//    {
//        nmin = min(it, nmin);
//    }
//    for (int i = nmin; i < 100010; i++)
//    {
//        if (num[i] == 0)
//        {
//            return i;
//        }
//    }
//    return 0;
//}
//
//int main()
//{
//    vector<int> v = { 1,10,4,4,3,3,9,1,6,9,10 };
//    cout << getFirstUnFormedNum(v, v.size());
//    return 0;
//}

int main()
{
    long long n;
    while (cin >> n)
    {
        if (n == 0) break;
        if (n == 1)
        {
            cout << 0 << endl;
            continue;
        }
        int cnt = 0;
        while (n > 3)
        {
            if (n % 3) n = n / 3 + 1;
            else n /= 3;
            cnt++;
        }
        cout << cnt + 1 << endl;
    }
    return 0;
}